#ifndef MAPSEARCHNODE_H
#define MAPSEARCHNODE_H

#include <QObject>
#include <QString>
#include "astarsearch.h"

// Definitions
class Engine;

class MapSearchNode : public AStarSearchNode
{
public:

//    MapSearchNode(Engine* engine = NULL);
    MapSearchNode(Engine* engine,
                  int row,
                  int column);
    //From AStarSearchNode
    bool operator==(const AStarSearchNode& other) const;
    float heuristicEstimateOfDistance(const AStarSearchNode& other) const;
    float distanceTo(const AStarSearchNode& other) const;
    void neighborNodes(QList<AStarSearchNode*>& neighbors) const;
    QString nodeInfo()const;

    int column() const;
    int row() const;

private:
    Engine *m_engine;
    int m_column;	 // the (x,y) positions of the node
    int m_row;
};

#endif // MAPSEARCHNODE_H
